Page({
  data: {
    allColleges: [], // 保存所有学院的完整数据
    colleges: [],    // 显示的学院数据（受搜索影响）
    searchKeyword: "", // 搜索关键词
  },

  onLoad() {
    // 初始化数据（假数据或通过接口请求获取数据）
    const collegesData = [
      {
        name: "计算机科学与技术学院",
        majors: ["计算机科学与技术", "物联网", "人工智能", "数据科学与大数据技术"],
      },
      {
        name: "机械科学与工程学院",
        majors: ["机械设计制造及其自动化", "工业工程", "产品设计"],
      },
      {
        name: "光学与电子信息学院",
        majors: ["光电信息科学与工程", "电子科学与技术", "集成电路设计与集成系统", "微电子科学与工程"],
      },
      {
        name: "材料科学与工程学院",
        majors: ["材料成型及控制工程", "材料科学与工程"],
      },
      {
        name: "能源与动力工程学院",
        majors: ["能源与动力工程", "核工程与核技术", "新能源科学与工程", "储能科学与工程"],
      },
      {
        name: "电气与电子工程学院",
        majors: ["电气工程及其自动化", "电子信息工程", "通信工程"],
      },
      {
        name: "土木与水利工程学院",
        majors: ["土木工程", "给排水科学与工程", "水利水电工程"],
      },
      {
        name: "环境科学与工程学院",
        majors: ["环境工程", "环境科学", "生态环境工程"],
      },
      {
        name: "经济管理学院",
        majors: ["工商管理", "市场营销", "会计学", "国际经济与贸易"],
      },
      {
        name: "外国语学院",
        majors: ["英语", "日语", "翻译"],
      },
      {
        name: "人文社会科学学院",
        majors: ["法学", "社会学", "新闻学", "汉语言文学"],
      },
      {
        name: "艺术与设计学院",
        majors: ["视觉传达设计", "环境设计", "服装与服饰设计", "数字媒体艺术"],
      },
      {
        name: "法学院",
        majors: ["法学", "国际法", "经济法"],
      },
      {
        name: "新闻传播学院",
        majors: ["新闻学", "传播学", "广告学"],
      },
      {
        name: "公共管理学院",
        majors: ["公共事业管理", "行政管理", "社会工作"],
      },
      {
        name: "数学与统计学院",
        majors: ["数学与应用数学", "统计学", "精算学"],
      },
      {
        name: "物理科学与工程学院",
        majors: ["物理学", "应用物理学", "工程物理"],
      },
      {
        name: "化学与化工学院",
        majors: ["化学工程与工艺", "应用化学", "制药工程"],
      },
      {
        name: "生物科学与技术学院",
        majors: ["生物科学", "生物技术", "环境生物工程"],
      },
      {
        name: "地理科学与资源管理学院",
        majors: ["地理科学", "资源环境与城乡规划管理", "遥感科学与技术"],
      },
      {
        name: "体育学院",
        majors: ["体育教育", "运动训练", "社会体育"],
      },
      {
          name: "医学部",
          majors: ["临床医学", "基础医学", "口腔医学", "护理学", "公共卫生与预防医学"],
        },
        {
          name: "药学院",
          majors: ["药学", "制药工程", "药物化学"],
        },
        {
          name: "护理学院",
          majors: ["护理学", "老年护理", "社区护理"],
        },
        {
          name: "口腔医学院",
          majors: ["口腔医学", "口腔修复学", "口腔种植学"],
        },
    ];
    

    // 将数据加载到页面
    this.setData({
      allColleges: collegesData, // 保存完整数据
      colleges: collegesData,   // 初始化显示的数据
    });
  },

  // 搜索框输入事件
  onSearchInput(e) {
    const keyword = e.detail.value.trim(); // 获取输入框内容并去掉多余空格
    this.setData({
      searchKeyword: keyword,
    });

    // 执行搜索功能
    this.searchColleges(keyword);
  },

  // 搜索功能实现
  searchColleges(keyword) {
    if (!keyword) {
      // 如果搜索框为空，显示所有学院
      this.setData({
        colleges: this.data.allColleges,
      });
      return;
    }

    // 过滤学院和专业（根据关键词匹配）
    const filteredColleges = this.data.allColleges
      .map((college) => {
        // 在学院名或专业中匹配关键词
        const matchedMajors = college.majors.filter((major) =>
          major.includes(keyword)
        );
        if (college.name.includes(keyword) || matchedMajors.length > 0) {
          return {
            name: college.name,
            majors: matchedMajors.length > 0 ? matchedMajors : college.majors,
          };
        }
        return null;
      })
      .filter((college) => college !== null); // 去掉不匹配的学院

    // 更新页面显示数据
    this.setData({
      colleges: filteredColleges,
    });
  },
});